const express = require("express");
// 文章
const article = require("../middleware/article");
// 分类
const category = require("../middleware/category");
const auth = require("../middleware/auth");

const multer = require("multer");
const path = require("path");
const fs = require("fs");

// 创建应用
const indexApp = express();
indexApp.use(auth.getUser);

// 加载首页面
// 获取热门文章
/**
 * article.getHot : 查询热门文章
 * auth.getUser   ：登陆后写到登陆信息
 * article.getPage：实现分页功能，地址栏传参 p 对应页数
 * category.getList：实现类别筛选功能，根据指定的分类id查找对应的文章
 *    category_id : 分类id
 *         hots   ： 查询热门文章，1 ：热门，0：普通
 */
indexApp.get(
  "/",
  [article.getHot, auth.getUser],
  (req, res, next) => {
    // 文章总数
    let len = req.hots.length;
    let size = req.query.size || 10;
    size = parseInt(size)
    let page = {};
    page.count = len;
    // 获取总页数
    page.total = Math.ceil(page.count / size);
    // 判断地址的是否传值页数
    page.p = req.query.p ? req.query.p : 1;
    console.log(page.p, 2222);
    // 判断跳转页数是否大于总页数
    page.p = page.p > page.total ? page.total : page.p;
    // 判断页数是否小于0
    page.p = page.p < 1 ? 1 : page.p;
    // 往中间件传参
    // 当前显示的页数
    res.start = (page.p - 1) * size;
    // 显示数量
    res.size = size;
    next();
  },
  [article.getPage, category.getList, article.getListByCategoryId],
  (req, res) => {
    let { pageList, category, page } = req;
    res.json({
      page,
      pageList,
      category,
    });
  }
);
// 获取最新文章
indexApp.get("/article", [article.getList], (req, res) => {
  res.send(req.article);
});
// 获取指定文章
indexApp.get('/articlelist', [article.getArticleList], (req, res) => {
  res.json(req.articleList)
})
// 获取指定分类文章详情
indexApp.get("/list", [article.getListByCategoryId], (req, res) => {
  // console.log(req);
  res.send(req.ListArticle);
});
// 获取搜索文章
indexApp.get("/search", [article.getListByKeyword], (req, res) => {
  // console.log(req);
  res.send(req.keyword);
});
// 获取上一篇文章
indexApp.get("/prevarticle", [article.getPrev], (req, res) => {
  // console.log(req);
  res.send(req.prevArticle);
});
// 获取下一篇文章
indexApp.get("/nextarticle", [article.getNext], (req, res) => {
  // console.log(req);
  res.send(req.nextArticle);
});
// 设置热门推荐
indexApp.get("/sethot", [article.setHot], (req, res) => {
  // 判断热门设置是否成功
  if (req.affectedRows > 0) {
    res.json({
      code: 1,
      msg: "设置成功",
    });
  } else {
    res.json({
      code: 0,
      msg: "设置失败",
    });
  }
});
// 文章添加
indexApp.post("/articleAdd", [article.articleAdd], (req, res) => {
  if (req.insertId) {
    res.json({
      code: 1,
      msg: '添加成功'
    });
  } else {
    res.json({
      code: 0,
      msg: "添加失败",
    });
  }
});
// 删除文章
indexApp.post('/delArticle', [article.delArticle], (req, res) => {
  // console.log();
  if (req.affectedRows > 0) {
    res.json({
      code: 1,
      msg: '删除成功'
    })
  } else {
    res.json({
      code: 0,
      msg: '删除失败'
    })
  }
})
// 文章编辑
indexApp.post('/edit',article.editArticle, (req, res) => {
  if (req.insertId > 0) {
    res.json({
      code: 1,
      title: "成功",
      message: '文章编辑成功'
    })
  } else {
    res.json({
      code: 0,
      title: "失败",
      message: '文章编辑失败'
    })
  }
})
// 获取分类
indexApp.get("/category", [category.getList], (req, res) => {
  res.send(req.category);
});
// 获取指定分类
indexApp.get("/categoryInfo", [category.getCategoryId], (req, res) => {
  // console.log(req);
  res.send(req.categoryInfo);
});

module.exports = indexApp;
